<?php
class Product extends AppModel {
	public $belongsTo = array('Category','Brand');
	public $hasMany = array('Stock' );	
	public $actsAs = array(
		'Upload.Upload' => array(
			'photo' => array(
				'fields' => array(
					'dir' => 'photo_dir'
				),
				'thumbnailSizes' => array(					
					'small' => '64w',
					'medium' => '140w',
					'big' => '340w',
				),
				'thumbnailMethod' => 'php',
				'path' => '{ROOT}..{DS}app{DS}webroot{DS}upload_files{DS}',
				'deleteFolderOnDelete' => true,
				'deleteOnUpdate' => true,
				'thumbnailQuality' => 80,
			)
		)
	);
	public $validate = array(
		'name'=>array(
			'rule'=>'notEmpty',
			'required'=>true,
			'message'=>'Tên bắt buộc phải nhập',
		),
		'price'=>array(
			'number' => array(
				'rule'=>'numeric',
				'message'=>'Giá phải là 1 số',
			),			
		),
		'product_code'=>array(
			'notEmpty' => array(
				'rule' => 'notEmpty',
				'required'=>true,
				'message' => 'Không được để trống',
			),			
			'unique'=>array(
				'rule'=>'isUnique',
				'message'=>'Bị trùng với mã có sẵn rồi',
			),
		),
		'photo' => array(
			'sizelimit' => array(
				'rule' => 'isUnderPhpSizeLimit',
				'message' => 'File lớn quá rồi, tối đa 5MB',
			),
			'notempdir' => array(
				'rule' => array('tempDirExists', false),
				'message' => 'Thư mục tạm không tồn tại',
			),
			'cantupload' => array(
				'rule' => array('isSuccessfulWrite', false),
				'message' => 'File was unsuccessfully written to the server',
			),
			'uploaddirnotexist' => array(
				'rule' => array('isValidDir', false),
				'message' => 'Thư mục upload file không tồn tại',
			),
			'cantwrite' => array(
				'rule' => array('isWritable',false),
				'message' => 'Thư mục upload file không ghi được',
			),
		)
	);
	
	public function beforeSave($options = array()) {		
		parent::beforeSave();
		if(isset($this->data[$this->alias]['name'])){
			$this->data[$this->alias]['slug'] = $this->createSlug($this->data[$this->alias]['name'],$this->id);
		}
		return true;
	}
}
